package so.sao.shop.supplier.pojo.output;

import com.fasterxml.jackson.annotation.JsonFormat;
import so.sao.shop.supplier.pojo.vo.OrderRefuseImageVo;
import so.sao.shop.supplier.pojo.vo.RefusePurchaseItemVo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * <p>Version: supplier V1.2.0 </p>
 * <p>Title: PurchaseRefuseOutPut</p>
 * <p>Description: 拒收及退换货详情出参对象</p>
 *
 * @author: zhenhai.zheng
 * @Date: Created in 2017/11/29 14:57
 */
public class PurchaseRefuseOutPut {
    /**
     * 订单ID
     */
    private String orderId;
    /**
     * 供应商ID
     */
    private String storeId;

    /**
     * 订单状态
     * (订单状态:1.待付款2.待发货3.已发货4.已完成5.已拒收退款审核
     * 6.已退款7.已支付退款审核8.待付款已取消9.退款中10.审核通过
     * 11.拒绝退款12.已收货19.确认送达)
     */
    private Integer orderStatus;

    /**
     * 上一个订单状态（只有7和9,10,12有该状态）
     */
    private Integer prefixOrderStatus;
    /**
     * 收货人姓名
     */
    private String orderReceiverName;

    /**
     *  配送方式 1自配送 2物流公司
     */
    private Integer logisticsShipMethod;

    /**
     * 买家拒收申请时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date orderRefuseTime;

    /**
     * 供应商审核时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date checkTime;

    /**
     * 退回商品时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date returnTime;

    /**
     * 退款时间
     */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
    private Date drawbackTime;

    /**
     * 退款金额
     */
    private BigDecimal drawbackPrice;
    /**
     * 取件人/配送人姓名
     */
    private String distributorName;

    /**
     * 取件人/配送人姓名
     */
    private String distributorMobile;

    /**
     * 物流公司
     */
    private String logisticsCompany;

    /**
     * 物流单号
     */
    private String logisticsShipmentNumber;

    /**
     * 对应商品明细
     */
    private List<RefusePurchaseItemVo> purchaseItemVoList;

    /**
     * 邮费
     */
    private BigDecimal orderPostage;

    /**
     * 实付金额
     */
    private BigDecimal payAmount;

    /**
     * 买家拒收类型
     */
    private String refuseType;

    /**
     * 买家拒收理由
     */
    private String refuseReason;

    /**
     * 买家取消类型
     */
    private String cancelType;

    /**
     * 买家取消原因
     */
    private String orderCancelReason;


    /**
     * 拒收凭证(图片)
     */
    private List<OrderRefuseImageVo> refuseImgUrl;

    /**
     * 供应商审核拒收申请不通过原因
     */
    private String storeRefuseReason;

    public String getOrderId() {
        return orderId;
    }

    public void setOrderId(String orderId) {
        this.orderId = orderId;
    }

    public Integer getOrderStatus() {
        return orderStatus;
    }

    public void setOrderStatus(Integer orderStatus) {
        this.orderStatus = orderStatus;
    }

    public String getOrderReceiverName() {
        return orderReceiverName;
    }

    public void setOrderReceiverName(String orderReceiverName) {
        this.orderReceiverName = orderReceiverName;
    }

    public Integer getLogisticsShipMethod() {
        return logisticsShipMethod;
    }

    public void setLogisticsShipMethod(Integer logisticsShipMethod) {
        this.logisticsShipMethod = logisticsShipMethod;
    }

    public Date getOrderRefuseTime() {
        return orderRefuseTime;
    }

    public void setOrderRefuseTime(Date orderRefuseTime) {
        this.orderRefuseTime = orderRefuseTime;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public Date getReturnTime() {
        return returnTime;
    }

    public void setReturnTime(Date returnTime) {
        this.returnTime = returnTime;
    }

    public Date getDrawbackTime() {
        return drawbackTime;
    }

    public void setDrawbackTime(Date drawbackTime) {
        this.drawbackTime = drawbackTime;
    }

    public String getDistributorName() {
        return distributorName;
    }

    public void setDistributorName(String distributorName) {
        this.distributorName = distributorName;
    }

    public String getDistributorMobile() {
        return distributorMobile;
    }

    public void setDistributorMobile(String distributorMobile) {
        this.distributorMobile = distributorMobile;
    }

    public String getLogisticsCompany() {
        return logisticsCompany;
    }

    public void setLogisticsCompany(String logisticsCompany) {
        this.logisticsCompany = logisticsCompany;
    }

    public String getLogisticsShipmentNumber() {
        return logisticsShipmentNumber;
    }

    public void setLogisticsShipmentNumber(String logisticsShipmentNumber) {
        this.logisticsShipmentNumber = logisticsShipmentNumber;
    }

    public List<RefusePurchaseItemVo> getPurchaseItemVoList() {
        return purchaseItemVoList;
    }

    public void setPurchaseItemVoList(List<RefusePurchaseItemVo> purchaseItemVoList) {
        this.purchaseItemVoList = purchaseItemVoList;
    }

    public BigDecimal getOrderPostage() {
        return orderPostage;
    }

    public void setOrderPostage(BigDecimal orderPostage) {
        this.orderPostage = orderPostage;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public String getRefuseType() {
        return refuseType;
    }

    public void setRefuseType(String refuseType) {
        this.refuseType = refuseType;
    }

    public String getRefuseReason() {
        return refuseReason;
    }

    public void setRefuseReason(String refuseReason) {
        this.refuseReason = refuseReason;
    }

    public List<OrderRefuseImageVo> getRefuseImgUrl() {
        return refuseImgUrl;
    }

    public void setRefuseImgUrl(List<OrderRefuseImageVo> refuseImgUrl) {
        this.refuseImgUrl = refuseImgUrl;
    }

    public String getStoreRefuseReason() {
        return storeRefuseReason;
    }

    public void setStoreRefuseReason(String storeRefuseReason) {
        this.storeRefuseReason = storeRefuseReason;
    }

    public BigDecimal getDrawbackPrice() {
        return drawbackPrice;
    }

    public void setDrawbackPrice(BigDecimal drawbackPrice) {
        this.drawbackPrice = drawbackPrice;
    }

    public String getCancelType() {
        return cancelType;
    }

    public void setCancelType(String cancelType) {
        this.cancelType = cancelType;
    }

    public String getOrderCancelReason() {
        return orderCancelReason;
    }

    public void setOrderCancelReason(String orderCancelReason) {
        this.orderCancelReason = orderCancelReason;
    }

    public Integer getPrefixOrderStatus() {
        return prefixOrderStatus;
    }

    public void setPrefixOrderStatus(Integer prefixOrderStatus) {
        this.prefixOrderStatus = prefixOrderStatus;
    }

    public String getStoreId() {
        return storeId;
    }

    public void setStoreId(String storeId) {
        this.storeId = storeId;
    }
}
